Type: concept
Confidence: 0.85
Created: 2026-04-16
Updated: 2026-04-16
Tags: 技术AI工具AI工程

KV 缓存命中率

概述

KV 缓存命中率是生产阶段 AI Agent 的关键性能指标,衡量推理请求中多少输入 token 可以利用已缓存的 Key-Value 对,直接影响延迟(TTFT)和成本——缓存命中与未命中的成本差异可达 10 倍。

关键内容

为什么对 Agent 特别重要

典型 Agent 的运行模式导致输入/输出 token 比例高度倾斜: - Agent 通过工具使用链完成任务,每步的动作和观察结果追加到上下文 - 输出通常是结构化的函数调用,保持相对简短 - 以 Manus 为例:平均输入与输出 token 比例约 100:1 - 这使得 Agent 相比聊天机器人更依赖预填充阶段的优化

成本影响

Claude Sonnet 为例: - 缓存输入 token:$0.30/百万 token - 未缓存输入 token:$3.00/百万 token - 相差 10 倍

提高 KV 缓存命中率的三大实践

1. 保持提示前缀稳定

由于 LLM 的自回归特性,即使是单个 token 的差异也会使该标记之后的缓存失效。

常见错误:在系统提示开头包含时间戳(尤其是精确到秒的)——虽然让模型知道当前时间,但会降低缓存命中率。

2. 使上下文只追加

3. 明确标记缓存断点

自托管模型的额外优化

如果使用 vLLM 等框架自托管模型: - 确保启用了前缀/提示缓存 - 使用会话 ID 等技术在分布式工作节点之间一致地路由请求

与工具动态变化的冲突

在 Agent 系统中,工具定义通常位于上下文前部(系统提示之前或之后)。任何工具定义的更改都会使后续所有动作和观察的 KV 缓存失效

这是 Manus 选择"遮蔽而非移除"工具策略的重要原因之一——通过 logits 掩码约束动作选择,而非动态增删工具定义,从而保持缓存稳定。

与提示词缓存的关系

提示词缓存Prompt Caching)是 Anthropic API 层面的缓存机制,通过 cache_control 断点实现。KV 缓存是更底层的推理引擎优化。两者协同工作: - KV 缓存优化相同前缀的复用 - 提示词缓存标记哪些部分应该被缓存 - 在系统提示末尾添加 cache_control 断点,将系统提示与对话内容分开缓存

来源

相关